Skip to content

[lldb] Document MCP support in LLDB #145935

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 30, 2025
Merged

Conversation

JDevlieghere
Copy link
Member

Document how to use MCP support in LLDB. I expect this to change significantly as the feature matures. For now it covers configuring the server and two example clients.

@llvmbot
Copy link
Member

llvmbot commented Jun 26, 2025

@llvm/pr-subscribers-lldb

Author: Jonas Devlieghere (JDevlieghere)

Changes

Document how to use MCP support in LLDB. I expect this to change significantly as the feature matures. For now it covers configuring the server and two example clients.


Full diff: https://github.com/llvm/llvm-project/pull/145935.diff

2 Files Affected:

  • (modified) lldb/docs/index.rst (+1)
  • (added) lldb/docs/use/mcp.md (+68)
diff --git a/lldb/docs/index.rst b/lldb/docs/index.rst
index 1ffdb08a1ca2c..d49d0d8d5a733 100644
--- a/lldb/docs/index.rst
+++ b/lldb/docs/index.rst
@@ -135,6 +135,7 @@ interesting areas to contribute to lldb.
    use/ondemand
    use/aarch64-linux
    use/symbolfilejson
+   use/mcp
    use/troubleshooting
    use/links
    Man Page <man/lldb>
diff --git a/lldb/docs/use/mcp.md b/lldb/docs/use/mcp.md
new file mode 100644
index 0000000000000..a89740545e5f4
--- /dev/null
+++ b/lldb/docs/use/mcp.md
@@ -0,0 +1,68 @@
+# Model Context Protocol (MCP)
+
+LLDB supports for the [Model Context Protocol][1] (MCP). This structured,
+machine-friendly protocol allows AI models to access and interact with external
+tools, such as the debugger. Using MCP, an AI agent can execute LLDB commands
+to control the debugger: set breakpoints, inspect memory, step through code.
+This can range from helping you run a specific command you can't immediately
+remember to a fully agent-driven debugging experiences
+
+## MCP Server
+
+To start the MCP server in LLDB, use the `protocol-server start` command.
+Specify `MCP` as the protocol and provide a URI to listen on. For example, to
+start listening for local TCP connections on port `59999`, use the following
+command:
+
+```
+(lldb) protocol-server start MCP listen://localhost:59999
+MCP server started with connection listeners: connection://[::1]:59999, connection://[127.0.0.1]:59999
+```
+
+The server will automatically stop when exiting LLDB, or it can be stopped
+explicitly with the `protocol-server stop` command.
+
+```
+(lldb) protocol-server stop MCP
+```
+
+## MCP Client
+
+MCP uses standard input/output (stdio) for communication between client and
+server. The exact configuration depends on the client, but most applications
+allow you to specify an MCP server as a binary and arguments. This means that
+you need to use something like `netcat` to connect to LLDB's MCP server and
+forward communication over stdio over the network connection.
+
+Configuration example for [Claude Code][2]:
+
+```
+{
+  "mcpServers": {
+    "tool": {
+      "command": "/usr/bin/nc",
+      "args": ["localhost", "59999"]
+    }
+  }
+}
+```
+
+Configuration example for [Visual Studio Code][3]:
+
+```
+{
+  "mcp": {
+    "servers": {
+      "lldb": {
+        "type": "stdio",
+        "command": "/usr/bin/nc",
+        "args": ["localhost", "59999"]
+      }
+    }
+  }
+}
+```
+
+[1]: https://modelcontextprotocol.io
+[2]: https://modelcontextprotocol.io/quickstart/user
+[3]: https://code.visualstudio.com/docs/copilot/chat/mcp-servers

Copy link
Contributor

@ashgti ashgti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this, LGTM!

Copy link
Collaborator

@DavidSpickett DavidSpickett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Collaborator

@DavidSpickett DavidSpickett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JDevlieghere JDevlieghere merged commit 16dc6f6 into llvm:main Jun 30, 2025
8 checks passed
@JDevlieghere JDevlieghere deleted the mcp-docs branch June 30, 2025 16:01
rlavaee pushed a commit to rlavaee/llvm-project that referenced this pull request Jul 1, 2025
Document how to use MCP support in LLDB. I expect this to change
significantly as the feature matures. For now it covers configuring the
server and two example clients.
rlavaee pushed a commit to rlavaee/llvm-project that referenced this pull request Jul 1, 2025
Document how to use MCP support in LLDB. I expect this to change
significantly as the feature matures. For now it covers configuring the
server and two example clients.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants